A data network facilitates data transfers between two or more data processing systems. For example, an application executing in one data processing system acts as the sender of the data, and another application executing in another data processing system acts as the receiver of the data. Between the sender system and the receiver system, the data follows a data path that comprises a series of links between networking components, such as routers and switches. A link is also known as a hop.
For example, a data network exists between a network interface in the sender system and a network interface in the receiver system. A Transmission Control Protocol (TCP) session between a sender system and a receiver system sets up a data communication path—a default path—using such a series of links through the data network.
TCP is a commonly used communication protocol used for communicating packet data from one data processing system to another over a data network. Establishing a TCP session between two data processing systems involves a multi-step exchange of preliminary information between the two systems. This multi-step exchange of information is called a three-way handshake, or simply, a handshake.
A multipath network is a data network in which more than one outgoing communication paths are available for sending data from a system, more than one incoming communications paths are available for receiving data at the system, or both. A data communication session, e.g., a TCP session with the system can use any one of the outgoing paths and any one of the incoming paths.
MultiPath TCP (MPTCP) is a modification of TCP where multiple network interfaces can be concurrently used in a TCP session. For example, modern smartphones and other portable devices are able to communicate data over a variety of data networks, such as over cellular broadband and over Wi-Fi. Each network over which a device communicates uses a different network interface in the device. The communications over a cellular broadband network use a network interface in the device, which is designed and configured to communicate over a cellular broadband network, and similarly, the communications over Wi-Fi use a network interface in the device, which is designed and configured to communicate over a wireless TCP/IP network.
As an example, MPTCP allows the device to use the cellular broadband network interface as well as the Wi-Fi network interface concurrently in a TCP session. A portion of a TCP session data flow, which uses one of several network interfaces is called a sub-flow. Presently, an MPTCP component in the device measures the throughputs of each sub-flow and distributes the data traffic over the different sub-flows to achieve an optimal throughput.